Lab 3 – Controlling a Wheeled Mobile Robot
with an Infrared Remote
Demonstration:
April 11th 2002, Report Due: April 15th 2002
In this lab, we will
examine the interfacing of a small semi-autonomous wheeled mobile robot to a
microprocessor, focusing especially on development alternative user-interfaces
and performance calibration.
1.
Build
and calibrate a wheeled mobile robot from the kit components.
2.
Interface
a 38KHz Infrared (IR) remote sensor to read input signals from an IR TV
remote-control.
3.
Gain
experience with implementing alternative and unconventional user-interfaces.
PART A:
The BOE-Bot kit (and the
complementary series of exercises discussed in the Robotics Student Workbook)
provide an expedient method for creating simple wheeled mobile robots (which
will serve as our experimental testbed). In our work, we will build upon the hardware and software
framework to further extend the capabilities of this BOEBot for Part C of this
lab and the final projects.
Hence, in this first part, your task is to assemble, test and calibrate
a differentially driven mobile robot from the BOE-bot kit components. Explore http://www.stampsinclass.com/html_files/sic_curr/curriculum_robo.asp
and some of the affiliated links for more details about the BOE-Bot and other
useful information. The Robotics Student Workbook v1.5 is available for
download from:
http://www.stampsinclass.com/downloads/Robo/rob.pdf
OR
http://www.parallaxinc.com/downloads/Stamps_in_Class/rob.pdf
Please download and read the Robotics Student Workbook v1.5,
paying particular attention to Chapters 1-2.
PART B:
Your
task will be to receive and decode the 38Khz modulated IR signal from a TV
remote, using the Basic Stamp and a 38Khz IR receiver, and display the decoded
result on an LCD screen. Remotes from different manufacturers may use different
coding schema for sending information. Select a particular remote (one of your
group has access to) and research the Web to find the corresponding scheme.
Setup the
Stamp circuitry with the IR receiver module to the
setup. Create a program that can recognize the relevant bits from the IR
message and display the last pressed key on the LCD screen. Once you have this
part working integrate it with the program for motor control that you developed
in Part B so that the remote control will take on the role of the keypad – i.e.
pressing keys on the remote control will control the operation of the motor.
Some background
information (possibly useful!):
·
38 KHz
Infra-Red Receiver (Sharp IS1U60) http://www.hvwtech.com/robotics.htm#ir-rx.
·
Seb Cervinska's 305-557A Homework Documentation http://www.cim.mcgill.ca/~arlweb/mechatronics/p5/homeworks/homeworks.htm
·
A Remote Control Study http://www.ee.washington.edu/conselec/A95/projects/pierreg/main.htm
·
Decoding IR Remote Controls http://www.ee.washington.edu/circuit_archive/circuits/F_ASCII_Schem_IR.html#ASCIISCHEMIR_006
·
Long Range Infrared Remote http://www.boondog.com//tutorials/lrir/mc145026.htm
·
A
Serial Infrared Remote Controller http://www.armory.com/~spcecdt/remote/remote.html
·
Generating
Sony Remote Control Signals with a BASIC Stamp II http://www.whimsy.demon.co.uk/sircs/
·
Remote
control code specifications for Sony A/V equipment http://www.brouhaha.com/~eric/pic/controls.html
·
The iRX
2.1 http://www.media.mit.edu/~r/projects/picsem/irx2_1/
·
Sony
Control-S Protocol Specifications http://www.ecn.purdue.edu/~laird/electronics/Sony/protocols/sircs.txt
·
Sircs
description http://www.geocities.com/CapeCanaveral/Launchpad/4652/sircs.htm
PART C:
Many
alternative interfaces can be created by a combination of hardware and
software mechatronic elements. In this
part we will explore the creation and use of some of these interfaces (using
the components that we developed in Parts A and B):
MODE 1: Steering wheels and joysticks are two of the
most common hardware interface devices used for operation of remote-control
toys. We, however, would like to use an infrared TV remote coupled with
suitable electronics as a means to actively control the operation of the Wheeled
Mobile Robot. (E.g. The Up/Down Left/Right keys on the IR remote could be used
to drive the robot forward and backward). Thus, in this interactive operation
mode, we would like to be able to drive the robot using the remote
control as the active driving interface.
MODE 2: Very often, in order to partially automate
the task of driving, it is beneficial to preprogram most of the motion control
into a series of parametric primitives/subroutines (sudh as Drive_in_a_circle,
Drive_Straight, Turn_on_the_spot). Thus, in the second mode, we would like to
explore this process further using one sample primitive, tracing a circle.
Create a generic subroutine/program that can move the mobile robot in a
circular trajectory, for a given radius of the circle inputted using
the IR remote control.
Only Modes 1 and 2 are required for
the demonstration (and all evaluation will be based on them).
MODE 3 (for the really ambitious
folks): Thus, given
a set of parametrically controllable primitive routines, a more complex motion
can now be performed as a sequence of simpler primitives with suitably
selected parameters. For example, travel to a given (incremental)
desired X,Y position by the mobile robot can be broken down into a sequence of
two motions – Turn_on_the_spot (q degrees) and Drive_straight (r
cm). Thus, in this demonstration, the IR remote could be
used to input the desired X,Y position and the rest of the decomposition into
the motion sequence and actual execution is completely controlled by the
onboard computation.
Reporting:
Provide a self-standing document, which could be used as an
“Application Note” which describes and explains your system and would enable
someone else to replicate your work. Please follow the guidelines provided at http://www.eng.buffalo.edu/Courses/MAE505/ReportFormat.html.
Specifically:
·
Discuss
the process of implementation, the intermediate calibration steps and their
role on the final accuracy (if any!).
·
Discuss
some of the factors that would affect overall accuracy of operation, especially
in Mode 2 – discuss what steps you have taken (if any) to verify the accuracy.
·
Document
your system with circuit diagrams and list of components and include a listing
of your program with thorough comments